home *** CD-ROM | disk | FTP | other *** search
/ Giga Games 1 / Giga Games.iso / net / usenet / vmsnet / qix / part05 < prev    next >
Encoding:
Text File  |  1992-02-25  |  14.6 KB  |  423 lines

  1. Newsgroups: vmsnet.sources.games
  2. Path: uunet!zaphod.mps.ohio-state.edu!sol.ctr.columbia.edu!mary.fordham.edu!areid
  3. From: areid@mary.fordham.edu (Darin Reid)
  4. Subject: Qix.04 -- arcade based game
  5. Organization: Fordham University
  6. Message-ID: <25FEB199219011280@mary.fordham.edu>
  7. News-Software: VAX/VMS VNEWS 1.41    
  8. Sender: news@ctr.columbia.edu (The Daily Lose)
  9. Date: Tue, 25 Feb 1992 23:01:00 GMT
  10.  
  11. -+-+-+-+-+-+-+-+ START OF PART 4 -+-+-+-+-+-+-+-+
  12. X                     Last_Start_Creat_Y := Last_You_Y;
  13. X                     Dir_When_Start_Creat := Dir_You;
  14. X                 end;
  15. X         `09 Screen`5BX,y`5D.Sym  := Correct_Sym(X,Y,You_X,You_Y);
  16. X         `09 Screen`5BX,Y`5D.wall := Created;
  17. X                 Creating_wall := True;
  18. X                 Last_You_X := X;
  19. X                 Last_You_Y := Y;
  20. X              end else begin`20
  21. X                 You_X := X;
  22. X                 You_Y := Y;
  23. X               end;
  24. X             end;
  25. X   Inside  : Begin
  26. X              If Creating_wall Then begin
  27. X                 `7B Have Created A Box `7D
  28. X                 Creating_wall    := False;
  29. X                 Can_Create_wall  := False;
  30. X                 Screen`5BX,Y`5D.Sym  := Correct_Sym(X,Y,You_X,You_Y);
  31. X                 Screen`5BX,Y`5D.Wall := Created;
  32. X                 Pos(X,Y,Screen`5BX,Y`5D.Sym);
  33. X                 Pos(You_X,You_Y,You);
  34. X                 Screen`5BYou_X,You_Y`5D.Sym  := Correct_Sym(You_X,You_Y,You
  35. V_X,You_Y);
  36. X                 Screen`5BYou_X,You_Y`5D.Wall := Created;
  37. X`09`09 Break_Buff;
  38. X                 Cal_Inside;
  39. X                 If Moving_Extra_Greebly Then`20
  40. X                    Pos(Extra_Greeb_X,Extra_Greeb_Y,Screen`5BExtra_Greeb_X,E
  41. Vxtra_Greeb_Y`5D.sym);
  42. X                 Moving_Extra_Greebly := False;
  43. X                 If Amt_Filled_In  > 1228 Then  Begin
  44. X                     Score := Score + Amt_Filled_In + ( Amt_Filled_In - 1228
  45. V);
  46. X                     Break_Buff;
  47. X                     Write(Esc,'Y',Chr(55),CHr(40),(Amt_Filled_In * 100 / 16
  48. V38 ):5:2);
  49. X                     Writeln(Esc,'Y',Chr(55),Chr(53),(Score):5,Esc,'H');
  50. X`09`09     Sleep(3,0);
  51. X                     Initalise_Screen;
  52. X                 end else begin
  53. X                    Break_Buff;
  54. X                    Write(Esc,'Y',Chr(55),CHr(40),(Amt_Filled_In * 100 / 163
  55. V8 ):5:2);
  56. X                    Writeln(Esc,'Y',Chr(55),Chr(53),(Score+Amt_Filled_In):5,
  57. VEsc,'H');
  58. X                    Last_You_X := X;
  59. X                    Last_You_Y := Y;
  60. X                 end;
  61. X              end else`20
  62. X                  If Not VAlid_Move Then begin
  63. X                     You_X := X;
  64. X                     You_Y := Y;
  65. X                  end Else begin
  66. X                     Last_You_X := X;
  67. X                     Last_You_Y := Y;
  68. X                  end;
  69. X                    `20
  70. X             END;
  71. X   Created : Begin
  72. X               If Not Moving_Extra_Greebly Then Begin
  73. X                  Moving_Extra_Greebly := True;
  74. X                  Extra_Greeb_X := Start_Creat_X;
  75. X                  Extra_Greeb_Y := Start_Creat_Y;
  76. X                  Last_Extra_Greeb_X := Last_Start_Creat_X;
  77. X                  Last_Extra_Greeb_Y := Last_Start_Creat_Y;
  78. X                  Pos(Extra_Greeb_X,Extra_Greeb_Y,'*');
  79. X               end;
  80. X               You_X := X;
  81. X               You_Y := Y;
  82. X             end;
  83. X   OutSide : Begin
  84. X               You_X := X;
  85. X               You_Y := Y;
  86. X               end;
  87. Xend `7B Case `7D;
  88. X
  89. XIf ((You_X=Snake_Head_X) and (You_Y=Snake_Head_Y)) or`20
  90. X   ((You_X=Clock_Greeb_X) and (You_Y=Clock_Greeb_Y)) or`20
  91. X   ((You_X=Anti_Greeb_X) and (You_Y=Anti_Greeb_Y)) Then`20
  92. X      Died := True;
  93. XIf Len_Snake > 2 Then`20
  94. X   Screen`5BSnake_Tail_X,Snake_Tail_Y`5D.Sym := Save_ch;
  95. XPos(X,Y,Screen`5BX,Y`5D.Sym);            `20
  96. XPos(You_X,You_Y,You);
  97. Xend;
  98. X
  99. XProcedure Get_move;
  100. X
  101. Xvar ch : char;
  102. X
  103. XBegin
  104. X   CAse TT_1_Char_Now Of`20
  105. X`7B' '`7D  32  : Can_Create_Wall := True;
  106. X`7B'4'`7D  52  : Begin
  107. X            Move_X := 0;
  108. X            Move_Y := -1;
  109. X            end;
  110. X`7B'6'`7D  54  : Begin
  111. X            Move_X := 0;
  112. X            Move_Y := 1;
  113. X            end;
  114. X`7B'8'`7D  56 : begin
  115. X            Move_Y :=0;
  116. X            Move_X :=-1;
  117. X            end;
  118. X`7B'2'`7D  50 : Begin
  119. X            Move_Y := 0;
  120. X            Move_X := 1;
  121. X            end;
  122. X`7B'e','E'`7D 101,69 : Goto 9999;
  123. X      Otherwise `7B Noyhing `7D
  124. X   end;
  125. Xend;
  126. X  `20
  127. X
  128. XProcedure Have_Died;
  129. X
  130. XVar Dummy,LSudo_X,LSudo_Y,Sudo_X,Sudo_Y : Integer;
  131. X    Save_Sym : Char;
  132. X
  133. XBegin
  134. XBreak_Buff;
  135. XDied := False;
  136. XLives := Lives - 1;
  137. XIf Lives > 0 Then Begin
  138. X   If Creating_wall Then Begin
  139. X      If Moving_Extra_Greebly Then`20
  140. X         Pos(Extra_Greeb_X,Extra_Greeb_Y,Screen`5BExtra_Greeb_X,Extra_Greeb_
  141. VY`5D.Sym);
  142. X      Moving_Extra_Greebly := False;
  143. X      Save_sym := Screen`5BSnake_Tail_X,Snake_Tail_Y`5D.Sym;
  144. X      Sudo_X := Last_You_X;
  145. X      Sudo_Y := Last_You_Y;
  146. X      LSudo_X := You_X;
  147. X      LSudo_Y := You_Y;
  148. X         Pos(LSudo_X,LSudo_Y,Screen`5BYou_X,You_Y`5D.Sym);
  149. X         Move_Clockwise(Sudo_X,Sudo_Y,Lsudo_X,LSudo_Y);
  150. X         While Screen`5BSudo_X,Sudo_Y`5D.Wall <> Inside do begin
  151. X            Pos(LSudo_X,LSudo_Y,Blank);
  152. X            Screen`5BLSudo_X,LSudo_Y`5D.Sym := Blank;
  153. X            Screen`5BLSudo_X,LSudo_Y`5D.Wall := Other;
  154. X            Move_Clockwise(Sudo_X,Sudo_Y,Lsudo_X,LSudo_Y);
  155. X         end;
  156. X      Creating_wall := False;
  157. X      If ( Snake_Head_X <> Snake_Tail_X ) or ( Snake_Head_Y <> Snake_Tail_Y
  158. V ) Then`20
  159. X         Screen`5BSnake_Tail_X,Snake_Tail_Y`5D.Sym := '%';
  160. X      Screen`5BLSudo_X,LSudo_Y`5D.Sym := Correct_sym(LSudo_X,LSudo_Y,LSudo_X
  161. V,LSudo_Y);
  162. X      If ( Snake_Head_X <> Snake_Tail_X ) or ( Snake_Head_Y <> Snake_Tail_Y
  163. V ) Then`20
  164. X         Screen`5BSnake_Tail_X,Snake_Tail_Y`5D.Sym := Save_sym;
  165. X      Screen`5BLSudo_X,LSudo_Y`5D.Wall := Inside;
  166. X      Pos(LSudo_X,LSudo_Y,Screen`5BLSudo_X,LSudo_Y`5D.Sym);
  167. X      You_X := Start_Creat_X;
  168. X      You_Y := Start_Creat_Y;
  169. X      Last_You_X := Last_Start_Creat_X;
  170. X      Last_You_Y := Last_Start_Creat_Y;
  171. X      Dir_You := Dir_When_Start_Creat;
  172. X   end;
  173. X   Write_Buff(chr(7));
  174. X   Pos(Snake_Head_X,Snake_Head_Y,Qix_Head);
  175. X   Pos(You_X,You_Y,You);
  176. X   Pos(Clock_Greeb_X,Clock_Greeb_Y,Screen`5BClock_Greeb_X,Clock_Greeb_Y`5D.S
  177. Vym);
  178. X   Pos(Anti_Greeb_X,Anti_Greeb_Y,Screen`5BAnti_Greeb_X,Anti_Greeb_Y`5D.Sym);
  179. X   Break_Buff;
  180. X   Write(Esc,'Y',chr(31+24),chr(31+34),Esc,'K');
  181. X   For Dummy := 1 to Lives Do`20
  182. X      Write(' O');
  183. X   Writeln(Esc,'H');
  184. X   Can_Create_wall := False;
  185. X   For Dummy := 1 to 4 do`20
  186. X      Move_Greeblys;
  187. Xend;  `20
  188. Xend;
  189. X
  190. XBegin
  191. X   Initalise;
  192. X   Break_Buff;
  193. X   Repeat
  194. X      Sleep_Start;
  195. X      Get_move;
  196. X      Move_You;
  197. X      If Not Died Then Begin
  198. X         Move_snake;
  199. X         Move_Greeblys;`20
  200. X         If ( Rand(Level) >= 4 ) and ( Not Died )Then Begin
  201. X            Move_Greeblys;
  202. X            If ( rand(Level) >= 5 ) and ( Not Died ) Then Begin
  203. X               Move_Snake;
  204. X               If ( rand(Level) >= 6 ) and ( Not Died ) Then Begin
  205. X                  Move_Greeblys;
  206. X                  If ( rand(Level) >= 7 ) and ( Not Died ) Then Begin
  207. X                     Move_snake;
  208. X                     If ( rand(Level) >= 8 ) and ( Not Died ) Then Begin
  209. X                        Move_Greeblys;
  210. X                        If ( rand(Level) >= 9 ) and ( Not Died ) Then Begin
  211. X                           Move_Snake;
  212. X                        end;
  213. X                     end;
  214. X                  end;
  215. X               end;
  216. X            end;
  217. X         end;
  218. X      end;
  219. X      Break_Buff;
  220. X      Sleep_wait;
  221. X      If Died Then`20
  222. X         Have_Died;
  223. X   until Lives <= 0;
  224. X  `20
  225. X   9999:   `7B This Goto Was Not My Idea only Used For Abortive Exit `7D
  226. X   Break_Buff;
  227. X   writeln(Esc,'G',Esc,'H',Esc,'J',Esc,'<');
  228. X   Score := Score + Amt_Filled_In;
  229. X   TT_Cancel;
  230. X   TopTen(Score);
  231. Xend.
  232. $ CALL UNPACK QIX.PAS;1 606979058
  233. $ create 'f'
  234. X`1B`5BH`1B`5BJ`1B(B`1B`5B0m
  235. X`1B`5B1;1H`1B(0lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq
  236. Vqqqqqqqqqqqqqqqqqqk
  237. X`1B`5B2;1Hx`1B`5B2;80Hx`1B`5B3;1Hx      Y`1B(Bou      - O`1B`5B3;32H`1B(0lqq
  238. Vk  qwq  qk l`1B(B-      Qix `1B(0q `60qqqqqq
  239. X`1B`5B3;67Hk lqqqqq     x`1B`5B4;1Hx`1B`5B4;31Hlj  x   x    mwj`1B`5B4;64Hlq
  240. Vqj x`1B`5B4;80Hx`1B`5B5;1Hx      F`1B(Buse
  241. X`1B`5B5;12H     - *`1B`5B5;31H`1B(0x  kx   x    lvk`1B`5B5;64Hmqqqqj`1B`5B5;
  242. V80Hx`1B`5B6;1Hx`1B`5B6;31Hmqqvvk qvq  qj mq`1B`5B6;80H
  243. X`1B`5B6;80Hx`1B`5B7;1Hx`1B`5B7;36Hm`1B`5B7;80Hx`1B`5B8;1Hx   F`1B(Bence Off
  244. V The Screen Trying To Avoid The Hazzards
  245. X`1B`5B8;54H.`1B`5B8;80H`1B(0x`1B`5B9;1Hx`1B`5B9;80Hx`1B`5B10;1Hx   H`1B(Bazz
  246. Vards   : Qix   - Kills If Touches The Line
  247. X`1B`5B10;51H You Are Drawing`1B`5B10;80H`1B(0x`1B`5B11;1Hx`1B`5B11;18HF`1B(B
  248. Vuse  - Traverses The Outside Killing On Con
  249. X`1B`5B11;62Htact`1B`5B11;80H`1B(0x`1B`5B12;1Hx`1B`5B12;80Hx`1B`5B13;1Hx`1B`5
  250. VB13;80Hx`1B`5B14;1Hx   M`1B(Bovement   :   8 - Up`1B`5B14;43H
  251. X`1B`5B14;43HNew Screen `1B(0`60 O`1B(Bnce 75% Fenced Off     `1B(0x`1B`5B15;
  252. V1Hx`1B`5B15;80Hx`1B`5B16;1Hx`1B`5B16;13H4 `1B(B- Lef
  253. X`1B`5B16;20Ht    6 - Right`1B`5B16;43HHigher Scoring For Areas`1B`5B16;80H`1
  254. VB(0x`1B`5B17;1Hx`1B`5B17;80Hx
  255. X`1B`5B18;1Hx`1B`5B18;20H2 `1B(B- Down`1B`5B18;46HGreater Than 75%.`1B`5B18;8
  256. V0H`1B(0x`1B`5B19;1Hx`1B`5B19;80Hx
  257. X`1B`5B20;1Hx   D`1B(Braw Fence :   < Space Bar >`1B`5B20;43H`1B`5B7m Hit < R
  258. Veturn > To Play `1B`5B0m   E : Exit  `1B(0x
  259. X`1B`5B21;1Hx`1B`5B21;80Hx`1B`5B22;1Hx`1B`5B22;80Hx`1B`5B23;1Hmqqqqqqqqqqqqqq
  260. Vqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq`1B`5B1;1H
  261. X`1B`5B23;57Hqqqqqqqqqqqqqqqqqqqqqqqj`1B`5B1;1H
  262. X`1B*
  263. $ CALL UNPACK QIX.SCN;1 824521603
  264. $ create 'f'
  265. XC
  266. X`09SUBROUTINE`09TOPTEN(ISCORE)
  267. XC
  268. X`09PARAMETER ESC = 27
  269. X`09PARAMETER MAX_SCORE = 11`09!MAX NUMBER SCORES HELD + 1
  270. X`09INTEGER`09ISCORE,ISCO,IHISCR,ISCOAT,ErrNum
  271. X`09LOGICAL*1 CHAMP(30),PLayer(20)
  272. X`09INTEGER`09NUM_Games,SCORES(MAX_SCORE),SORT,ASCTIM_DESCR(2)
  273. X        Real*8 Date_Quad(Max_Score),Now_Time
  274. X`09LOGICAL*1 NAMES(20,MAX_SCORE),TEMP(20),ASCTIM(17)
  275. XC
  276. X        Write(5,111)esc
  277. X111     Format(X,A1,'<')
  278. X`09AscTim_descr(2) = %LOC(ASCTIM(1))
  279. X`09AscTim_Descr(1) = 17 ! Lenght`20
  280. X1`09OPEN(UNIT=4,FILE='GAMES:QIX.TOP',FORM='UNFORMATTED',
  281. X`091 RECORDTYPE='FIXED',STATUS='OLD',RECL=512,IoStat=ErrNum)
  282. X        If (ERRNUM.EQ.30) Goto 50
  283. X        If (ERRNUM.NE.0 ) Goto 999
  284. XC`09GET TOP TEN SCORES
  285. XC
  286. X`09READ`09(4) Num_Games,SCORES,Date_Quad,NAMES
  287. X        Num_Games = Num_Games + 1
  288. X`09IHISCR = SCORES(1)
  289. XC`09Copy Over Score Player Got`20
  290. X`09SCORES(MAX_SCORE)=ISCORE
  291. X`09Call sys$GETTIM(NOw_Time)
  292. X`09DATe_Quad(MAx_Score) = Now_Time
  293. XC`09Copy Over His Name`20
  294. X`09DO 2 J=1,20
  295. X  `09  NAMES(J,MAX_SCORE)= ' '
  296. X2`09CONTINUE
  297. X3`09SORT=0
  298. X`09DO 5 I=1,MAX_SCORE-1
  299. X`09IF (SCORES(I).GE.SCORES(I+1)) GO TO 5
  300. X`09SORT=SCORES(I)
  301. X`09SCORES(I)=SCORES(I+1)
  302. X`09SCORES(I+1)=SORT
  303. X`09NOW_Time = Date_Quad(I)
  304. X        Date_Quad(I) = Date_Quad(I + 1)
  305. X        Date_Quad(I+1) = Now_Time
  306. X`09SORT=1
  307. X`09DO 4 J=1,20
  308. X`09TEMP(J)=NAMES(J,I)
  309. X`09NAMES(J,I)=NAMES(J,I+1)
  310. X`09NAMES(J,I+1)=TEMP(J)
  311. X4`09CONTINUE
  312. X5`09CONTINUE
  313. X`09IF (SORT.NE.0) GO TO 3
  314. XC
  315. XC
  316. X        WRITE (5,409),ESC,ESC
  317. X        ISCO=ISCORE
  318. X`09IF`09(ISCORE.GT.IHISCR) GO TO 10`09!Who is champ.
  319. X`09ISCORE=ISCORE/200
  320. X`09IF`09(ISCORE.EQ.0) WRITE (5,410)
  321. X`09IF`09(ISCORE.EQ.1) WRITE (5,411)
  322. X`09IF`09(ISCORE.EQ.2) WRITE (5,412)
  323. X`09IF`09(ISCORE.EQ.3) WRITE (5,413)
  324. X`09IF`09(ISCORE.EQ.4) WRITE (5,414)
  325. X`09IF`09(ISCORE.EQ.5) WRITE (5,415)
  326. X`09IF`09(ISCORE.EQ.6) WRITE (5,416)
  327. X`09IF`09(ISCORE.EQ.7) WRITE (5,417)
  328. X`09IF`09(ISCORE.EQ.8) WRITE (5,418)
  329. X`09IF`09(ISCORE.EQ.9) WRITE (5,419)
  330. X`09IF`09(ISCORE.EQ.10) WRITE (5,420)
  331. X`09IF`09(ISCORE.EQ.11) WRITE (5,421)
  332. X`09IF`09(ISCORE.EQ.12) WRITE (5,422)
  333. X`09IF`09(ISCORE.EQ.13) WRITE (5,423)
  334. X`09IF`09(ISCORE.EQ.14) WRITE (5,424)
  335. X`09IF`09(ISCORE.EQ.15) WRITE (5,425)
  336. X`09IF`09(ISCORE.EQ.16) WRITE (5,426)
  337. X`09IF`09(ISCORE.EQ.17) WRITE (5,427)
  338. X`09IF`09(ISCORE.EQ.18) WRITE (5,428)
  339. X`09IF`09(ISCORE.EQ.19) WRITE (5,429)
  340. X`09IF`09(ISCORE.EQ.20) WRITE (5,430)
  341. X`09IF`09(ISCORE.EQ.21) WRITE (5,431)
  342. X`09IF`09(ISCORE.EQ.22) WRITE (5,432)
  343. X`09IF`09(ISCORE.EQ.23) WRITE (5,433)
  344. X`09IF`09(ISCORE.EQ.24) WRITE (5,434)
  345. X`09IF`09(ISCORE.EQ.25) WRITE (5,435)
  346. X`09IF`09(ISCORE.EQ.26) WRITE (5,436)
  347. X`09IF`09(ISCORE.EQ.27) WRITE (5,437)
  348. X`09IF`09(ISCORE.EQ.28) WRITE (5,438)
  349. X`09IF`09(ISCORE.EQ.29) WRITE (5,439)
  350. X`09If      (ISCORE.GE.30) WRITE (5,440)
  351. XC
  352. X`09GO TO 20
  353. X10`09WRITE`09(5,500)
  354. X20`09WRITE`09(5,250) Num_Games
  355. XC
  356. X21`09CONTINUE
  357. X        ISCOAT = 0
  358. X   `09DO 28 I=1,10,1
  359. X`09  If (ISCO.EQ.SCORES(I)) ISCOAT = I
  360. X          If (Scores(i) .GT. 0 ) Then`20
  361. X`09`09Call sys$Asctim(,asctim_Descr,Date_Quad(I),%Val(0))
  362. X      `09`09WRITE`09(5,300)I,(NAMES(J,I),J=1,20),SCORES(I),ASCTIM
  363. X`09   end If`20
  364. X28`09Continue
  365. X`09Write(5,29),ISCO
  366. X29`09Format(X,/,'        Your Score ',I6)
  367. X        IF (ISCOAT.EQ.0.OR.SCORES(11).EQ.ISCO) GOTO 49
  368. X        Write(5,30)esc,ISCOAT+10,ESC,ISCOAT+10,ESC,ISCOat+10
  369. X30`09Format('$',A1,'`5B',I2,';1H=>', `20
  370. X`091 A1,'`5B',I2,';59H<= Enter Name',
  371. X`092 A1,'`5B',I2,';8H')
  372. X        Accept 31,ILen,PLayer
  373. X31`09Format(Q,20A1)
  374. X`09DO 32 J=1,20
  375. X          If ((PLAYER(J).LT.65).OR.
  376. X`091     (PLAYER(J).GT.90.And.PLAYER(J).LT.97).Or.
  377. X`092     (PLAYER(J).Gt.122))    PLAYER(J) = ' '
  378. X  `09  NAMES(J,ISCOAT)=PLAYER(J)
  379. X32`09CONTINUE
  380. X49`09REWIND(4)
  381. X`09WRITE(4) ,Num_Games,SCORES,Date_Quad,NAMES
  382. X`09close (unit = 4)
  383. X        Write(5,36),esc
  384. X36`09Format(X,A1,'`5B23;1H')
  385. X999`09Continue
  386. X`09RETURN
  387. X50`09Write(5,51),Esc,Esc
  388. X51      FORMAT(X,A1,'`5B2J',A1,'`5B1;1HPlease Wait ...')
  389. X        Call Sleep(4)
  390. X        Goto 1
  391. XC
  392. X100`09FORMAT`09(I6)
  393. X200`09FORMAT`09(20A1)
  394. X201`09format (A)
  395. X250`09FORMAT`09(///20X,' QIX Super League ',I13,' Games',/,
  396. X     +              20X,' ================ ',//,
  397. X     + 8X,'Player',19x,'Score',6X,'Date',4X,'Time',/)
  398. X300`09FORMAT`09(1X,I5,2X,20A1,4X,I6,2X,17A1)
  399. X409`09FORMAT  (X,A,'`5B2J',A,'`5B1;1H')   `09`09! CLEAR AND HOME`20
  400. X410`09FORMAT`09(20X'** What Utter Crap ***')`09`09!0-199
  401. X411`09FORMAT`09(20X'** I don''t believe it **')`09`09!200-399
  402. X412`09FORMAT`09(20X'** Rubbish  !!   **')`09`09!400-599
  403. X413`09FORMAT`09(20X'** What can I say **')`09`09!600-799
  404. X414`09FORMAT`09(20X'** Four figures one day **')`09!800-999
  405. X415`09FORMAT`09(20X'** Past the magic thousand **')`09!1000-1199
  406. X416`09FORMAT`09(20X'** Must try harder **')`09`09!1200-1399
  407. X417`09FORMAT`09(20X'** Well I suppose you''re trying **') !1400-1599
  408. X418`09FORMAT`09(20X'** Come on **')`09`09`09!1600-1799
  409. X419`09FORMAT`09(20X'** Almost there **')`09`09!1800-1999
  410. X420`09FORMAT`09(20X'** WOW! over 2000 **')`09`09!2000-2199
  411. X421`09FORMAT`09(20X'** Are you a novice? **')`09`09!2200-2399
  412. X422`09FORMAT`09(20X'** Getting Better **')`09`09!2400-2599
  413. X423`09FORMAT`09(20X'** Keep on trying **')`09`09!2600-2799
  414. X424`09FORMAT`09(20X'** 3000 One of these days **')`09!2800-2999
  415. +-+-+-+-+-+-+-+-  END  OF PART 4 +-+-+-+-+-+-+-+-
  416.  
  417.  
  418. __________
  419. Darin Reid
  420. Internet: Areid@Mary.Fordham.Edu
  421. Bitnet: Areid@Fordmulc
  422. Phone: (212) 749-8187
  423.